package com.dalin.framework.common.pager;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;

import com.dalin.framework.common.utils.DateUtils;
import com.dalin.framework.common.utils.NumberUtils;
import com.dalin.framework.common.utils.StringUtils;

public class CuteVo implements java.io.Serializable {
	// set进属性及值
	public void set(String name, String value) {
		propMap.put(name, value);
	}
	public void set(String name, Boolean value) {
		propMap.put(name, value);
	}
	public void set(String name, Long value) {
		propMap.put(name, value);
	}
	public void set(String name, Integer value) {
		propMap.put(name, value);
	}
	public void set(String name, Double value) {
		propMap.put(name, value);
	}
	public void set(String name, Date value) {
		propMap.put(name, value);
	}

	// get属性值
	public String getString(String name) {
		return StringUtils.toString(propMap.get(name));
	}
	public Boolean getBoolean(String name) {
		return Boolean.parseBoolean(getString(name));
	}
	public Long getLong(String name) {
		String str = getString(name);
		if (NumberUtils.isIntegerType(str)) {
			return Long.parseLong(str);
		}
		return null;
	}
	public Integer getInteger(String name) {
		String str = getString(name);
		if (NumberUtils.isIntegerType(str)) {
			return Integer.parseInt(str);
		}
		return null;
	}
	public Double getDouble(String name) {
		String str = getString(name);
		if (NumberUtils.isIntegerType(str) 
				|| NumberUtils.isDecimalType(str)) {
			return Double.parseDouble(str);
		}
		return null;
	}
	public Date getDate(String name) {
		return DateUtils.getDate(getString(name));
	}
	
	
	
	
	
	public boolean containProperty(Object key) {
		return propMap.containsKey(key);
	}
	
	public Set<String> getNames() {
		return propMap.keySet();
	}
//	public void putAll(CommonVo m) {
//		propMap.putAll(m);
//	}
	public void remove(String key) {
		propMap.remove(key);
	}
	public int size() {
		return propMap.size();
	}
	
	public String toString() {
		StringBuffer buf = new StringBuffer(512);
		buf.append("{");
		Set<String> nameSet = getNames();
		for (String name : nameSet) {
			buf.append("\"").append(name).append("\":")
				.append("\"").append(getString(name)).append("\",");
		}
		return buf.append("}").toString();
	}
	
	private final Map propMap = new HashMap();
}
